Endpoint proximity pairing using acoustic spread spectrum token exchange and ranging information

ABSTRACT

A first endpoint generates an acoustic spread spectrum signal including a pilot sequence and a data sequence representing a token synchronized to the pilot sequence, transmits the acoustic spread spectrum signal, and records a transmit time at which the acoustic spread spectrum signal is transmitted. A receive time at which a second endpoint received the acoustic spread spectrum signal transmitted by the first endpoint is received from the second endpoint along with an indication of a second token as recovered from the received acoustic spread spectrum signal by the second endpoint. A separation distance between the first endpoint and the second endpoint is computed based on a time difference between the transmit time and the receive time. The first endpoint is paired with the second endpoint when the token matches the second token and the computed distance is less than a threshold distance.

TECHNICAL FIELD

The present disclosure relates to proximity pairing of endpoints usingacoustic spread spectrum communications.

BACKGROUND

Room environments are challenging for transmission of information viaacoustic signals. This is due to the extreme multi-path nature of animpulse response of the room from the transmission source (loudspeaker)to wherever the capture device (microphone) resides. Although humans arewell adapted for this environment, traditional forms of communications(e.g. using acoustic tones and pulses) have difficulty operatingreliably in such an environment. As an example, direct path sound may beas much as 20 dB below a sum of reverberant sound (non-direct pathsound) when the loudspeaker and the microphone are separated by 30 feetin a typical conference room. Proximity pairing of endpoint devices isused to associate the endpoint devices with each other prior toestablishing a communication session between the devices. Proximitypairing involves an exchange of signals between the endpoint devices tobe paired, but the exchange of signals often suffers from the extrememultipath mentioned above, which may prevent appropriate pairing, orpossibly result in inappropriate pairing.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is an illustration of a communication environment in whichembodiments directed to proximity verification using acoustic spreadspectrum techniques for token exchange and derivation of ranginginformation may be implemented.

FIG. 1B is a block diagram of an acoustic spread spectrum communicationsystem, including a spread spectrum acoustic transmitter and a spreadspectrum acoustic receiver, in which a pilot sequence and data spreadingcodes based on a Prometheus Orthonormal Set (PONS) may be used,according to an example embodiment.

FIG. 2 is an absolute magnitude vs. time-shift plot of PONScross-correlation and autocorrelation averages for PONS codes oreigenvectors of order 2^(K) where K=6, according to an exampleembodiment.

FIG. 3 is an illustration of the PONS matrix P_(128,128), which definesPONS eigenvectors of order 2⁷, according to an example embodiment.

FIG. 4 is a block diagram of the spread spectrum acoustic transmitterthat expands on an encoder of the transmitter, according to an exampleembodiment.

FIG. 5 is an illustration of data-to-eigenvector mappings used in thespread spectrum acoustic transmitter, according to an embodiment.

FIG. 6 is an illustration of a timing relationship between a PONS piloteigenvector and a sequence of PONS data eigenvectors generated by thespread spectrum acoustic transmitter, according to an embodiment.

FIG. 7 is a block diagram of the spread spectrum acoustic receiver thatexpands on a decoder of the receiver, according to an embodiment,according to an embodiment.

FIG. 8 is a flowchart of a transmit method performed by the spreadspectrum acoustic transmitter, according to an example embodiment.

FIG. 9 is a flowchart of a receive method performed by the spreadspectrum acoustic receiver, according to an example embodiment.

FIG. 10 is a transaction diagram by which proximityverification/authentication using an acoustic spread spectrum signal fortoken exchange and ranging information is achieved in the environment ofFIG. 1A, according to a first embodiment.

FIG. 11 is a transaction diagram by which proximityverification/authentication using an acoustic spread spectrum signal fortoken exchange and ranging information is achieved in the environment ofFIG. 1A, according to a second embodiment.

FIG. 12 is a transaction diagram by which proximityverification/authentication using an acoustic spread spectrum signal fortoken exchange and ranging information is achieved in the environment ofFIG. 1A, according to a third embodiment.

FIG. 13 is a flowchart of a method of pairing endpoints using anacoustic spread spectrum signal for token exchange and ranginginformation including operations from the method of FIG. 10, accordingto an embodiment.

FIG. 14 is a flowchart of a method of pairing endpoints using anacoustic spread spectrum signal for token exchange and ranginginformation including operations from the method of FIGS. 11 and 12,according to an embodiment.

FIG. 15 is a block diagram of a communication device, e.g., an endpointdevice, in which the spread spectrum acoustic transmitter and the spreadspectrum acoustic receiver may be implemented, according to an exampleembodiment.

FIG. 16 a simplified block diagram of an access management server fromFIG. 1A, according to an embodiment.

DESCRIPTION OF EXAMPLE EMBODIMENTS

Overview

In a first embodiment, a first endpoint device generates an acousticspread spectrum signal including a pilot sequence and a spread datasequence representing a token synchronized to the pilot sequence,transmits the acoustic spread spectrum signal, and records a transmittime at which the acoustic spread spectrum signal is transmitted. Areceive time at which a second endpoint device received the acousticspread spectrum signal transmitted by the first endpoint device isreceived from the second endpoint device along with an indication of asecond token as recovered from the received acoustic spread spectrumsignal by the second endpoint device. A separation distance between thefirst endpoint device and the second endpoint device is computed basedon a time difference between the transmit time and the receive time. Thefirst endpoint device is paired with the second endpoint device when thetoken matches the second token and the computed distance is less than athreshold distance.

In a second embodiment, a first endpoint device generates an acousticspread spectrum signal including a pilot sequence and a spread datasequence synchronized with the pilot sequence. The spread data sequenceencodes both a token and a future transmit time at which the acousticspread spectrum signal will be transmitted. The first endpoint devicetransmits the acoustic spread spectrum signal at the future transmittime. A second endpoint device receives the acoustic spread spectrumsignal, determines from the received acoustic spread spectrum signal areceive time, a second token corresponding to the token, and the futuretransmit time. A separation distance between the first endpoint deviceand the second endpoint device is computed based on a difference betweenthe receive time and the future transmit time, and the second token andthe computed separation distance are sent to a network. The second tokenand the computed separation distance are received from the secondendpoint device over the network. The first endpoint device is pairedwith the second endpoint device when the second token matches the tokenand the computed separation distance is less than a threshold distance.

Example Embodiments

With reference to FIG. 1A, there is an illustration of a communicationenvironment 10 in which embodiments directed to proximity verificationusing acoustic spread spectrum techniques for token exchange and ranginginformation may be implemented. Communication environment 10 includes: afirst endpoint device 12(1) equipped for audio/visual communication,such as a video conference device, a voice over Internet Protocol (VOIP)phone, or the like; a second endpoint device 12(2) configured tocommunicate with the first endpoint device when in range of the firstendpoint device over one or more acoustic channels 14, each of theendpoint devices operated by a respective user (not shown in FIG. 1);and an access management server (AMS) 16 (referred to more simply as“management server” 16 or “management entity” 16) that communicates witheach of the endpoint devices over a communication network 20 connectedwith the endpoint devices, and the AMS. Communication network 20 mayinclude one or more of a wired or wireless local area network (LAN) andwired or wireless wide area network (WAN), including the Internet.Network 20 may support a variety of protocols, including, withoutlimitations, the Internet Protocol (IP), the Session Initiation Protocol(SIP), the Hypertext Transfer Protocol (HTTP), and the Real-timeTransport Protocol (RTP), and so on. Endpoint devices 12(1) and 12(2)may be deployed in a shared work space or in different rooms in abuilding, for example. Moreover, endpoints 12 may move between the roomsover time. Communication environment 10 is shown by way of example,only, and it is understood, that the communication environment maysupport any number of endpoint devices.

Endpoint devices 12(1) and 12(2) (referred to individually as an“endpoint 12” and collectively as “endpoints 12”) are each configured totransmit and receive acoustic signals, including acoustic spreadspectrum signals. Thus, endpoint 12(2) may communicate with endpoint12(1) over one or more acoustic channels 14 established between theendpoints. Endpoints 12 may use any known or hereafter developedtechnique for channelizing audio to create the acoustic channels, suchas: Time Division Multiplexing (TDM), in which different time slots areassigned to different channels; Frequency Division Multiplexing (FDM),in which different carrier frequencies or different frequency bands areassigned to different acoustic channels; Code Division Multiplexing, in(CDM), in which different spreading codes, e.g., spread spectrum codes,are assigned to different channels.

Endpoints 12 are considered to be in range of each other if an acousticsignal transmitted by one of the endpoints may be received, detected,and processed by the other endpoint, e.g., when the two endpoints occupythe same room. When in range of each other, endpoints 12 may establishand engage in an audio/visual conference session with each other, andmay also communicate with other endpoints (not shown in FIG. 1) overnetwork 20. Once the conference session is established, theparticipating endpoints, e.g., endpoints 12, exchangeinformation/content over acoustic channels 14, and in turn exchange theinformation/content with network 20.

According to embodiments presented herein, AMS 16 interacts withendpoint 12(1) and endpoint 12(2) to detect whether endpoint 12(2) is inrange of endpoint 12(1) at any given time, and then authenticateendpoint 12(2) based on a token exchange communication protocolimplemented by and between the AMS and the endpoints, as will bedescribed in detail below. Once a given endpoint has been authenticated,various operations may be performed with respect to that endpoint. Forexample, user profile information (e.g., a user phone number and anemail address) stored in a centralized user profile database may bedownloaded from the database to endpoint 12(1) for subsequent use withrespect to the authenticated endpoint (e.g., endpoint 12(2)), such asfor receiving and making phone calls via endpoint 12(1). Also, eachauthenticated endpoint (e.g., endpoint 12(2)) may be assigned, andgranted access to, a secure acoustic channel between the given endpointand endpoint 12(1) and over which the endpoint may exchangeinformation/content during a conference session.

The above-described detecting and authenticating together represent“pairing” of endpoint 12(1) with endpoint 12(2) when in range of eachother. Such pairing is also referred to herein as “proximityverification” of endpoints 12 because the pairing verifies theauthenticity of the endpoints that are in range of each other (i.e.,proximate each other). After proximity verification/authentication,endpoint 12(1) and endpoint 12(1) are referred to as “paired devices” or“paired endpoints.”

As mentioned briefly above, endpoints 12 employ acoustic spread spectrumtechniques to communicate with each other over one or more acousticchannels 14. Such acoustic spread spectrum techniques are described byway of example below in connection with FIGS. 1B and 2-9. The acousticspread spectrum techniques form the basis for proximity pairingpresented herein. Accordingly, after the spread spectrum techniques havebeen described below, embodiments directed to proximity pairing will bedescribed in detail in connection with FIGS. 10-14.

Spread Spectrum Techniques

With reference to FIG. 1B, there is shown a block diagram of an examplespread spectrum (SS) acoustic communication system 100 includingportions of endpoints 12 in which spreading codes based on thePrometheus Orthonormal Set (PONS) may be used. Communication system 100includes a spread spectrum acoustic transmitter (TX) 102 of endpoint12(1) and a spread spectrum acoustic receiver (RX) 104 of endpoint12(2). Acoustic transmitter 102 includes an encoder 106, an acousticmodulator 108, and a loudspeaker 110 that perform sequential signalprocessing to convert input data 112 to a spread spectrum acousticsignal 114 that includes a pilot sequence and a spread data sequencethat are time synchronized with each other. Loudspeaker 110 transmitsacoustic signal 114 over an acoustic channel 116. Acoustic signal 114may have a frequency spectrum in an audible frequency band of humanhearing (e.g., up to 20 kHz), an ultrasound frequency band (e.g., above20 kHz), or a frequency band that spans both the audible and theultrasound frequency bands. Acoustic receiver 104 includes a microphone120, acoustic demodulator 122, a correlator 124, and a decoder 126 thatperform sequential signal processing on acoustic signal 114 (whenreceived) to convert the received acoustic signal to output data 130representative of input data 112.

TX 102 employs spreading codes based on the PONS (referred to as “PONScodes” or “PONS sequences”) to generate acoustic signal 114 from inputdata 112, and RX 102 employs the PONS codes to recover output data 130from the acoustic signal. The PONS codes are based on Shapiropolynomials, which have coefficients +/−1. That is, each PONS codeincludes a sequence of coefficients in which each of the coefficients is+/−1. PONS codes are generated based on a PONS construction. The PONSconstruction expands the Shapiro polynomials via a concatenation ruledefined below. Working with sequences formed by the polynomialcoefficients, various PONS matrices are as follows.

Starting with:

${P_{1} = {\begin{bmatrix}P_{1,1} \\Q_{1,1}\end{bmatrix} = \begin{bmatrix}1 & 1 \\1 & {- 1}\end{bmatrix}}},$

Concatenation leads to:

${P_{2} = {\begin{bmatrix}P_{2,1} \\Q_{2,1} \\P_{2,2} \\Q_{2,2}\end{bmatrix} = {\begin{bmatrix}P_{1,1} & Q_{1,1} \\P_{1,1} & {- Q_{1,1}} \\Q_{1,1} & P_{1,1} \\{- Q_{2,2}} & P_{1,1}\end{bmatrix} = \begin{bmatrix}1 & 1 & 1 & {- 1} \\1 & 1 & {- 1} & 1 \\1 & {- 1} & 1 & 1 \\{- 1} & 1 & 1 & 1\end{bmatrix}}}},$

and letting

$P_{m - 1} = \begin{bmatrix}P_{{m - 1},1} \\Q_{{m - 1},1} \\ \vdots \\P_{{m - 1},2^{m - 2}} \\Q_{{m - 1},2^{m - 2}}\end{bmatrix}$

which is of dimensions 2^(m−1)×2^(m−1) with each row being one of the2^(m−1) PONS sequences, the 2^(m)×2^(m) PONS matrix is obtained by

$P_{m} = {\begin{bmatrix}P_{m,1} \\Q_{m,1} \\P_{m,2} \\Q_{m,2} \\ \vdots \\P_{m,{2^{m - 1} - 1}} \\Q_{m,{2^{m - 1} - 1}} \\P_{m,2^{m - 1}} \\Q_{m,2^{m - 1}}\end{bmatrix} = {\begin{bmatrix}P_{{m - 1},1} & Q_{{m - 1},1} \\P_{{m - 1},1} & {- Q_{{m - 1},1}} \\Q_{{m - 1},1} & P_{{m - 1},1} \\{- Q_{{m - 1},1}} & P_{{m - 1},1} \\ \vdots & \vdots \\P_{{m - 1},2^{m - 2}} & Q_{{m - 1},2^{m - 2}} \\P_{{m - 1},2^{m - 2}} & {- Q_{{m - 1},2^{m - 2}}} \\Q_{{m - 1},2^{m - 2}} & P_{{m - 1},2^{m - 2}} \\{- Q_{{m - 1},2^{m - 2}}} & P_{{m - 1},2^{m - 2}}\end{bmatrix}.}}$

Thus, in one example of a 4×4 PONS matrix:

${P_{2^{2},2^{2}} = \begin{bmatrix}1 & 1 & 1 & {- 1} \\1 & 1 & {- 1} & 1 \\1 & {- 1} & 1 & 1 \\{- 1} & 1 & 1 & 1\end{bmatrix}}{{P_{2^{2},2^{2}}*P_{2^{2},2^{2}}^{T}} = {4*I}}{{P_{2^{K},2^{K}}*P_{2^{K},2^{K}}^{T}} = {2^{K}*I}}$

and any row/column can be negated and still have P*P^(T)=(2^(K))*I.

According to the PONS construction described above, PONS codes aredefined in a PONS matrix P having 2^(K) rows and 2^(K) columns of PONScoefficients each equal to +/−1. Each row/column represents a code thatmay be used (i) to spread input data 112 to produce a spread datasequence that achieves spread spectrum gain, or (ii) directly as a pilotsignal (i.e., pilot sequence) having autocorrelation properties usefulfor pilot synchronization, as described below in connection with FIG. 2.In the ensuing description, the term “PONS eigenvector” may be usedsynonymously and interchangeably with the terms “PONS code” or “PONSsequence.” Thus, a “PONS eigenvector” or simply “eigenvector” refers toa sequence of PONS coefficients.

With reference to FIG. 2, there is a magnitude vs. time-shift plot ofPONS cross-correlation and autocorrelation magnitude amplitude averagesfor PONS codes or eigenvectors of order 2^(K) where K=6, i.e., definedin the PONS matrix P_(64,64). PONS matrix P_(64,64) defines 64 PONSeigenvectors (rows), each having a length of 64 PONS coefficients (i.e.,2⁶ PONS coefficients). The autocorrelation plot includes anautocorrelation peak 205 at time shift zero (corresponding to when aPONS eigenvector is time-aligned with itself). Autocorrelation peak 205is centered in time within a relatively wide zero-autocorrelation-zone(ZAZ) 210 equal to ½ the length of the PONS eigenvector. When TX 102generates acoustic signal 114 so as to include one of the PONSeigenvectors as a pilot sequence, RX 104 exploits ZAZ 210 for pilotsequence synchronization, as described below.

With reference to FIG. 3, there is an illustration of the PONS matrixP_(128,128), which defines PONS eigenvectors of order 2⁷, i.e., K=7.That is, PONS matrix P_(128,128) defines a set of 128 (2⁷) PONSeigenvectors (rows) each having a length of 128 PONS coefficients. Theset of 128 PONS eigenvectors is divided in half into a first half/subset305 of PONS eigenvectors and a second half/subset 310 of PONSeigenvectors. Each PONS eigenvector in first half 305 includes 128 PONScoefficients that sum together to a value of zero. These PONSeigenvectors are referred to as “zero-sum” eigenvectors. Each PONSeigenvector in second half 310 includes 128 PONS coefficients whose rowelements sum together to a value of 16. This exemplifies a generalproperty of the PONS construction, which, when K is odd (e.g., K=7 forPONS matrix P_(128,128)), half of the PONS eigenvectors in thecorresponding PONS matrix P are zero-sum PONS eigenvectors, while theother half are not. The zero-sum and the non-zero sum PONS eigenvectorsmay be used both as pilot sequences and to spread input data to producespread data sequences; however, it is advantageous to use the zero-sumPONS eigenvectors because their use eliminates a direct current (DC)component from the resulting pilot sequences and spread data sequences.The use of zero-sum eigenvectors is thus especially useful for baseband(i.e., non-modulated) implementations of this invention.

Another property of zero-sum PONS eigenvectors exploited in embodimentspresented herein is that the zero-sum PONS eigenvectors are timewiseorthogonal to each other across different eigenvector lengths that areodd powers of 2 (i.e., across lengths of 2^(K), where K takes on a rangeof odd values). For example, there are many subsets of 4 concatenatedPONS eigenvectors each of length 2⁹, when time-aligned with a specificPONS eigenvector of length 2¹¹, are each orthogonal to the longer PONSeigenvector. The longer PONS eigenvector is referred to as a piloteigenvector and the shorter PONS eigenvector subset is referred to as auser or data eigenvector for reasons to be apparent shortly. Thetimewise orthogonality of carefully crafted subsets occurs over manydifferent pairs of odd powers of two, such as pairs of lengths including2¹³/2¹¹, 2¹¹/2⁹, and 2⁹/2⁷. Orthogonality also occurs across odd powersof two greater than two, such as 2¹³/2⁹. The design of such usereigenvector subsets is outside the scope of the present invention and isnot described here. An example of such orthogonality will be describedin connection with FIG. 6.

With reference to FIG. 4, there is a block diagram of TX 102 that showsdetails of encoder 106, according to an embodiment. Encoder 106 includesa pilot generator 402 and a data mapper/spreader 404. Encoder 106 storesPONS pilot eigenvectors 406 in a memory of TX 102 (not shown), each ofwhich may be used to generate a pilot sequence for spread spectrumsynchronization. Encoder 106 also stores in the memorydata-to-eigenvector mappings 408 configured to map multi-bit words ofinput data 112 to PONS data eigenvectors (also referred to as “usereigenvectors” because they are used to spread user data) based on thevalues of the multi-bit words, such that each mapping uniquely maps arespective one of the multi-bit words to a corresponding one of the PONSdata eigenvectors. Thus, each PONS data eigenvector represents a spreadversion of its mapped multibit word in order to achieve spread spectrumgain in communication system 100 (assuming each bit of the multi-bitword corresponds to multiple PONS coefficients).

Pilot generator 402 receives distinct user identifiers (IDs)410(1)-410(X) to identify different users and selects a PONS piloteigenvector from PONS pilot eigenvectors 406 corresponding to one of theuser identifiers. In this way, pilot generator 402 may select differentones of PONS pilot eigenvectors 406 corresponding to different ones ofuser identifiers 410(1)-410(X). In accordance with pilot generatortiming signals synthesized by a time base 412, pilot generator 402generates/outputs the selected pilot eigenvector as a pilot sequence 420that extends across a pilot frame, such that the pilot sequence beginsand ends where the pilot frame begins and ends in time, respectively.Pilot generator 402 provides pilot sequence 420 to a mixer 422. Pilotgenerator 402 also provides to data mapper/spreader 404 a timing orsynchronization signal 424 representative of the pilot generator timingused to generate pilot sequence 420, i.e., representative of the pilotframe.

Data mapper/spreader 404 receives input data 112, groups the input dataas it arrives into multi-bit words or “tokens,” and maps each of themulti-bit words (i.e., tokens) to a corresponding data eigenvector basedon data-to-eigenvector mappings 408. Data mapper/spreader 404 outputsthe corresponding data eigenvectors in sequence as a spread datasequence 426 based on synchronization signal 424, such that the sequenceof data eigenvectors collectively spans and is time-aligned (i.e.,synchronized) with pilot sequence 420 (i.e., with the pilot frame). Theoutput data eigenvectors span/occupy respective sequential data framesthat are time-aligned with the pilot frame, such that a first one of thedata eigenvectors/data frames in the sequence of data eigenvectors/dataframes begins where pilot sequence 420 (i.e., the pilot frame) begins,and a last one of the data eigenvectors/data frames ends where the pilotsequence/pilot frame ends in time. Mixer 422 mixes pilot sequence 420with spread data sequence 426 (i.e., the sequence of data eigenvectorsspanning the pilot frame) to produce a spread spectrum baseband signal430 that includes the pilot sequence and the data eigenvectorstime-aligned or synchronized with each other. In addition, based onsynchronization signal 424 and the timing signals from time base 412,encoder 106 records times at which the pilot frame begins and ends, andtimes at which each of the data frames synchronized with the pilot framebegins and ends, and makes the recorded times available for otherprocessing, described below in connection with FIGS. 10-14. The recordedtimes may be represented as digital words having a sub-millisecondresolution for example. Over time as encoder 106 receives input data112, pilot generator 402 and data mapper/spreader 404 repeatedly performtheir respective operations described above to generate time-alignedpilot sequences and spread data sequences.

Acoustic modulator 108 and loudspeaker 110 together generate acousticsignal 114 from baseband signal 430 and transmit the acoustic signalover acoustic channel 116. Acoustic modulator 108 can move the frequencyspectrum occupied by acoustic signal 114 arbitrarily in frequency viaamplitude modulation, although other forms of narrowband modulation arepossible (e.g., low-index frequency or phase modulation). In an example,acoustic modulator may include an up-sampler followed by a root raisedcosine filter.

With reference to FIG. 5, there is an illustration of exampledata-to-eigenvector mappings for mappings 408. In the example of FIG. 5,mappings 408 include 32 5-bit words 505 (0000-11111) mapped tocorresponding ones of 32 data eigenvectors 510. Each data eigenvector(e.g., data eigenvector 515a) has a corresponding data eigenvector(e.g., 515b) that is a negated version of the data eigenvector (e.g., ofdata eigenvector 515a). Thus, data eigenvectors 510 include a firstsubset of 16 data eigenvectors and a second subset of 16 dataeigenvectors for a total of 32 data eigenvectors, where each dataeigenvector in the second subset is a negated version of a correspondingone of the data eigenvectors in the first set.

In the example of FIG. 5, the 16 possible positive data eigenvectors(choices) yields 32 different possible data eigenvectors (i.e., the 16positive data eigenvectors and their negatives) to mix with pilotsequence 420. All of the 32 data eigenvectors can be uniquely resolvedat RX 104. Because 32 data eigenvectors translates to 2⁵ possibilities,encoder 106 can take 5 bits (i.e., a 5-bit word) and, dependent on thevalue of the bits, send one of the 32 data eigenvectors to RX 104. Uponreception of the one of the data eigenvectors, RX 104 can map-back tothe 5 bits. The process performed at RX 104 will be described more fullybelow in connection with FIG. 7.

More generally, each data eigenvector of data-to-eigenvector mappings408 is a PONS eigenvector of order 2^(M) (M is odd), and each piloteigenvector of PONS pilot eigenvectors 406 is a PONS eigenvector oforder 2^(M)+^(K) (K is even and >0). In an example, K=2. As mentionedabove, use of pilot eigenvectors and data eigenvectors having respectivelengths that are different odd powers of 2 ensures that any chosen piloteigenvector is timewise orthogonal with any of the specially designedsubsets of data eigenvectors when a specific pilot eigenvector isaligned with the data eigenvector. As a result, in FIG. 4, pilotsequence 420 (representing the pilot eigenvector selected from PONSpilot eigenvectors 404 according a given user ID 410(i)) is orthogonalto each of the data eigenvectors in spread data sequence 426time-aligned with the pilot sequence.

With reference to FIG. 6, there is an illustration of an example timingrelationship 600 between a pilot sequence 605 (the selected piloteigenvector) and a sequence of contiguous data eigenvectors 610a, 610b,610c, and 610d as would exist in baseband signal 430 and correspondinglyin acoustic signal 114. Pilot sequence 605 spans a pilot frame and eachof data eigenvectors 610i spans a respective data frame in acousticsignal 114. In the example of FIG. 6, each data eigenvector 610i is oforder 2⁹ (length=512 coefficients), while pilot eigenvector 605 is oforder 2¹¹ (length=2048 coefficients, or 4 times the length of the dataeigenvector). With the illustrated timing relationship in which the fullextent of data eigenvectors 6105a-610d begins an ends in time alignmentwith pilot eigenvector 605, and due to the properties of the PONSconstruction (and pilot selection and user eigenvector subsetselection), each data eigenvector 610i is orthogonal to the portion ofthe pilot eigenvector of the same length. Such orthogonalityadvantageously simplifies decoding of acoustic signal 114 at RX 104because the pilot sequence need not be removed/subtracted from theacoustic signal prior to it being decoded.

In the example of FIG. 6, there is a minimum difference in odd powers oftwo between pilot sequence 605 and data eigenvectors 610 (which is 2,such as 2¹¹/2⁹), which yields the largest possible ZAZ for the dataeigenvectors. If there is reverberation in a room in which communicationsystem 100 is deployed resulting in data eigenvector reflections withinthe ZAZ of the data eigenvector, such reflections will be cancelled atRX 104. Reverberations outside of the ZAZ of the data eigenvector appearas uncorrelated noise. As long as there is sufficient spread spectrumgain (due to data spreading) to overcome the uncorrelated noise, it willbe possible for RX 104 to decode individual data eigenvectors. Thus,communication system 100 exploits both the ZAZ property of the PONScodes and spread spectrum gain to overcome room reflections andreverberation.

With reference to FIG. 7, there is a block diagram of RX 104 thatexpands on decoder 126, according to an embodiment. When RX 104 receivesacoustic signal 114, microphone 120 detects acoustic signal 114 toproduce detected acoustic signal 704. Acoustic demodulator 122demodulates detected acoustic signal 704 to produce a baseband signal706, and provides the baseband signal to correlator 124. In an example,acoustic demodulator includes a root raised cosine filter followed by adown-sampler. Correlator 124 correlates baseband signal 706 with areplica 708 of the pilot eigenvector selected by pilot generator 402 andused to generate pilot sequence 420 in TX 102, to produce correlationamplitudes that are used to detect the presence of the pilot sequence(i.e., the selected pilot eigenvector) in baseband signal 706.Correlator 124 detects the pilot sequence as a correlation peak (i.e.,an autocorrelation peak) among the correlation amplitudes. The magnitude(level) of the autocorrelation peak relative to the non-peak valuesdefines a quality of “lock” of correlator 124 on the pilot sequence(e.g., lower amplitude corresponds to lower quality lock or even failureto lock, and vice versa).

Correlator 124 also derives (i) a best sampling phase 708 for samplingbaseband signal 706, and (ii) a timing signal 710 indicative of pilotframe timing and thus data frame timing (e.g., the time position of thepilot and data frames in baseband signal 706) based on the detectedautocorrelation peak magnitude. Timing signal 710 may include digitaltime words having sub-millisecond resolution/accuracy that arerepresentative of various receive times associated with baseband signal706, such as times for the pilot sequence and data frame boundaries inthe baseband signal, and the autocorrelation peak. Timing signal 710 maybe provided to other processing discussed below in connection with FIGS.10-14. Correlator 124 provides best sampling phase 708, timing signal710, and baseband signal 706 to decoder 126. Correlator 124 may alsoderive a correlation ratio metric 712 indicative of whether correlator124 has detected and locked-onto the pilot sequence. A correlation ratio(value) below a predetermined correlation ratio threshold indicates thatcorrelator 124 has detected and locked-onto the pilot sequence, while acorrelation ratio equal to or above the correlation ratio thresholdindicates that the correlator has not detected and locked-onto the pilotsequence.

The quality of lock, as indicated by the correlation ratio, is describedbriefly. When an acoustic space, such as a room, in which RX 104 isdeployed is sounded with an acoustic signal that includes only a pilotsequence (i.e. no data eigenvector is mixed with the pilot sequence),correlator 124 produces a cross-correlation result that is a smoothedversion of the impulse response of the room. RX 104 locks-on to energyfrom a dominant signal path, even if that energy is a time-delayedversion of a direct signal path. However, whenever the direct signalpath and the dominant signal path deliver energy of similar magnitudes,the time difference between the two paths is generally no more thanabout 10 milliseconds. For this reason, the quality of lock is given byan inverse ratio of a peak absolute magnitude of the cross-correlationto a secondary peak absolute magnitude which occurs in a region of 50milliseconds to 10 milliseconds before the peak absolute magnitudeoccurs. In an embodiment, this is the above-mentioned correlation ratio.The 50 to 10 millisecond region is within the ZAZ of the pilot sequence(i.e., when no data eigenvector is present, the secondary peak absolutemagnitude should be zero, and thus the correlation ratio is zero).

The correlation ratio takes into account pilot sequence power relativeto spread data sequence power and a length of the pilot sequencerelative to that of the data eigenvectors. The correlation ratio, in theabsence of any noise is well below 0.2. The correlation ratio candegrade (i.e., increase) due to room reverberation (aka multi-path inother disciplines) and other room noise. A correlation ratio below 0.75is adequate to determine a quality lock in highly reverberant rooms.

In addition to the correlation ratio metric, another signal-strengthmetric may optionally be generated from the cross-correlation peak.Using similar methodology to the correlation ratio metric, an averagepower is computed from the samples in the region 50 milliseconds to 10milliseconds before the peak by summing the squared value of thosesamples and dividing by the number of those samples. A signal strengthmetric can be formed by the power of the cross-correlation peak (itssquared value) divided by the average power found in the 50 to 10millisecond region. Such a metric, expressed in dB, has been useful indetermining how strong the received signal is in comparison to thereceived noise. The optional signal-strength metric is depicted assignal strength indication 714 in FIG. 7, and may be used in conjunctionwith the correlation ratio metric.

Decoder 126 derives/recovers output data 130 from baseband signal 706based on best sampling phase 708 and timing signal 710. Decoder 126operates as a data despreader/demapper because it performs operationsreverse to those performed by data mapper/spreader 404. In oneembodiment, decoder 126 recovers output data 130 from baseband signal706 in the presence of the pilot sequence, i.e., without removing thepilot sequence from the baseband signal. This is practically achievablebecause the time-aligned pilot sequence and data eigenvectorsrepresenting the output data are orthogonal to each other based on thePONS construction. In another embodiment, decoder 126 (or correlator124) removes/subtracts the pilot sequence from baseband signal 706before the decoder recovers output data 130, i.e., the output data isrecovered in the absence of the pilot sequence.

Decoder 126 includes a dot-product generator 720, a metrics generator722, a data eigenvector selector 724, and data-to-eigenvector mappings726 stored in a memory of RX 104 (not shown), which are copies ofmappings 408 in TX 102. For each data frame spanned by the pilot framein baseband signal 706, dot-product generator 720 performs a respectivedot-product operation between each data eigenvector in mappings 726 andthe signal energy in the data frame, to produce respective ones ofdot-product amplitudes 730 indicative of respective similarities betweenthe signal energy and the corresponding data eigenvectors (e.g., thehigher the dot-product amplitude the more similar are the signal energyand the corresponding eigenvector) for that data frame. Dot-productamplitudes 730 are also referred to as “eigenvector projections.” Forexample, dot-product generator 720 performs: a first dot-productoperation between a first data eigenvector in mappings 726 and the dataframe, to produce a first dot-product amplitude 730(1) indicative of asimilarity between the energy in the data frame and the first dataeigenvector; a second dot-product operation between the data frame and asecond data eigenvector in mappings 726, to produce a second dot-productamplitude 730(2) indicative of a similarity between the energy in thedata frame and the second data eigenvector; and so on across Y dataeigenvectors in mappings 726. More generally, dot-product generator 720projects each of the data eigenvectors in mappings 726 onto the energyin the data frame (which is simply a time segment of baseband signal 706equal to a length of a data eigenvector) to produce respective projectedamplitudes 730 indicative of similarity. Although the pilot sequence maycontribute undesired energy to the data frame, the undesired energy doesnot contribute to any of the projected amplitudes due to orthogonalitybetween the pilot sequence and each of the projected data eigenvectors.Other operations besides dot-product operations may be used to generatesuch projections/amplitudes indications of similarity.

In the absence of any noise, all of the energy/power in the data frameshould project on the data eigenvector that occupies the data frame (asinserted by encoder 106). To the extent that the projection onto otherdata eigenvectors in the set of data eigenvectors yields significantenergy in those eigenvector projections, this indicates imperfectreception. In the limit, when noise is sufficient to overcome an abilityof RX 104 to recover the data eigenvectors from acoustic signal 114, theprojected energy is spread equally over all possibilities/dataeigenvectors. Accordingly, metrics generator 722 generates two powermetrics used to determine a level of confidence that a highest one ofthe eigenvector projections represents a correct data eigenvalue.

Metrics generator 722 computes the two confidence metrics based oneigenvector projections 730 as now described. Metrics generator 722determines a largest eigenvector projection P(Largest) and a nextlargest eigenvector projection P(Next_Largest) among eigenvectorprojections 730. Metrics generator 722 also computes an average P_(AVG)of all eigenvector projections 730 except the P(Largest) projection.Metrics generator 722 computes a first power metric “user-to-nextlargest ratio” U2SecU, in dB, which is a ratio of largest eigenvectorprojection P(Largest) to next largest eigenvector projectionP(Next_Largest), as follows:U2SecU=10*log₁₀ [P(Largest)/P(Next_Largest)].

Metrics generator 722 computes a second power metric“user-to-average-non-user ratio” U2ANU, in dB, which is a ratio oflargest eigenvalue projection P(Largest) to average P_(AVG), as follows:U2ANU=10*log₁₀ [P(Largest)/P_(AVG)].

Metrics generator 722 provides the first and second power metrics todata eigenvector selector 724.

Data eigenvector selector 724 receives power metrics U2SecU and U2ANU,and may also receive correlation ratio 712. In an embodiment, selector724 tests whether power metric U2SecU is above a first predeterminedthreshold and whether second power metric U2ANU is above a secondpredetermined threshold. If both tests pass, then data selector 724selects the data eigenvector among mappings 726 whose dot-productresulted in largest eigenvector projection P(Largest) as a best match tothe energy in the data frame, and outputs the multi-bit word mapped tothat (best matched) data eigenvector in mappings 726. If both tests donot pass, then data selector 724 does not select one of the dataeigenvectors from mappings 726 and does not output any multi-bit word.

In another embodiment, selector 724 tests whether power metric U2SecU isabove the first predetermined threshold, whether second power metricU2ANU is above the second predetermined threshold, and whether thecorrelation ratio is below the correlation ratio threshold (mentionedabove). If all three tests pass, then data selector 724 selects the dataeigenvector among mappings 726 whose dot-product resulted in largesteigenvector projection P(Largest) as a best match to the energy in thedata frame, and outputs the multi-bit word mapped to that dataeigenvector. If all three tests do not pass, then data selector 724 doesnot select one of the data eigenvectors from mappings 726 and does notoutput any multi-bit word. In an example, the first threshold is 2 dB,the second threshold is 11 dB, and the correlation ratio threshold is0.7, although other values for these thresholds may be used.

Decoder 126 repeats its above-described operations for each data framein the pilot frame to recover respective multi-bit words for each of thedata frames. Decoder 126 repeats this process over time for eachreceived pilot frame.

Communication system 100 relies on spread spectrum gain and the PONScode ZAZ properties to overcome room acoustics. The PONS codes used forthe pilot eigenvector and data eigenvectors as described above allowsfor successful decode when the desired signal is well below the noise(i.e., at negative SNRs). For example, a −6 dB in-band signal-to-noiseratio (SNR) has been attained using pilot sequence/data eigenvectororders 2¹¹/2⁹ (and a pilot to data amplitude ratio of 60%). If it isdesired to improve correct decoding of the transmitted acoustic signalat a close distance, while a listener at a further distance is notnecessarily able to be decoded correctly, a lower spread spectrum gain(i.e., lower-order spreading codes) may be used. The converse is alsopossible (higher spread spectrum gain with larger order spreadingcodes). Thus, communication system 100 may advantageously “tunespreading as a function of expected reverberation.”

Communication system 100 may be used in shared work spaces becausemultiple ones of the communication systems can exist in the sameroom/volume if different pilot sequences (pilot eigenvectors) are usedby the different communication systems and different communicationsystems are sufficiently closely synchronized in time. This can beachieved using different ones of user IDs 410. Since the speed of soundis relatively slow relative to radio waves, this is possible usingservices, such as running the Network Time Protocol (NTP), on differentcomponents of the communication systems.

The embodiments presented herein provide many advantages.

-   -   a. The embodiments employ spread spectrum gain to overcome room        reverberation in all spaces/rooms of interests (e.g., rooms not        requiring presenter amplification). This allows for decoding of        the dominant energy path signal in the presence of much larger        reverberant energy.    -   b. The embodiments, by using the same code construction for both        the pilot and spread data sequences/signals, render the pilot        signal orthogonal to the spread data signal which allows for a        simple decoder design.    -   c. The embodiments, by using spreading codes with large ZAZs,        effectively render to zero early reflection energy within the        ZAZ in comparison to other types of spreading codes in systems        that do not employ such large ZAZ spreading codes.    -   d. The embodiments, by using pilot signals with ZAZs, allow for        the creation of a robust synchronization metric (e.g.,        correlation ratio), which is advantageous for acoustic        environment applications.    -   e. The codes employed by the embodiments, being a power of two        based construction, can be designed to have any desired spread        spectrum gain; allowing the embodiments to be tailored to low        spread spectrum gain to high spread spectrum gain        designs/applications.    -   f. Multiple communication systems, via pilot code design, can be        made to operate in the same room volume—allowing for shared        workspace designs.

With reference to FIG. 8, there is a flowchart of an example transmitmethod 800 performed by TX 102.

At 805, TX 102 stores a set of data eigenvectors in mappings 408 thatare based on the Prometheus Orthonormal Set (PONS) code construction andorthogonal to each other, wherein each of the data eigenvectors ismapped to a unique multi-bit word.

At 810, TX 102 generates pilot sequence 420 representing a selectedpilot eigenvector that is also based on the PONS construction andorthogonal to each of the data eigenvectors.

At 815, TX 102 groups input data 112 into multi-bit words and selectsones of the data eigenvectors mapped to the multi-bit words. Input data112 may include multi-bit tokens from AMS 16.

At 820, TX 102 generates spread data sequence 426 including the selectedones of the data eigenvectors and that is synchronized to pilot sequence420.

At 825, TX 102 generates acoustic signal 114 including synchronizedpilot sequence 420 and spread data sequence 426. TX 102 records startand stop times for the pilot sequence and the data frames.

At 830, TX 102 transmits acoustic signal 114, and may generate andrecord one or more transmit times for transmitted acoustic signal 114.The one or more transmit times may include the recorded start and stoptimes for the pilot sequence and the data frames. Additionally, TX 102may add to the recorded start and stop times calibrated time delaysintroduced by acoustic modulator 108 and/or loudspeaker 110 acousticmodulator, to produce the one or more transmit times as time-delayedversions of the recorded start and stop times.

With reference to FIG. 9, there is a flowchart of an example receivemethod 900 performed by RX 104.

At 905, RX 104 stores (i) a set of data eigenvectors in mappings 726that are based on the Prometheus Orthonormal Set (PONS) codeconstruction and orthogonal to each other, wherein each of the dataeigenvectors is mapped to a unique multi-bit word, and (ii) replica 708of a pilot eigenvector that is also based on the PONS and is orthogonalto each of the data eigenvectors.

At 910, RX 104 receives acoustic signal 114 including a pilot sequencerepresenting the pilot eigenvector and at least one of the dataeigenvectors synchronized to the pilot sequence.

At 915, RX 104 detects the pilot sequence and its associated timingusing replica 708.

At 920, RX 104 identifies a data frame in the acoustic signal that isoccupied by the at least one data eigenvector based on the timing of thedetected pilot sequence. RX 104 also records times of the detected pilotsequence, autocorrelation peak, and the data frame.

At 925, RX 104 determines which data eigenvector in the set of dataeigenvectors is a best match to the at least one of the dataeigenvectors in the data frame.

At 930, RX 104 outputs the multi-bit word that is mapped to the dataeigenvector determined to be the best match to the at least one of thedata eigenvectors.

Proximity Pairing Embodiments

Having described spread spectrum techniques in detail above, proximitypairing embodiments that employ the spread spectrum techniques toexchange tokens and derive ranging information used for the pairing arenow described in connection with FIGS. 10-14.

With reference to FIG. 10, there is an example transaction diagram 1000by which proximity verification/authentication using acoustic spreadspectrum techniques for token exchange and ranging information isachieved in environment 10, according to a first embodiment. Transactiondiagram 1000 shows messages exchanged between AMS 16, endpoint 12(1)(referred to as a “type 1 endpoint”), and endpoint 12(2) (referred to asa “type 2 endpoint”). AMS 16 communicates with each of endpoints 12 overnetwork 20, while endpoints 12 communicate with each other over one ormore of acoustic channels 14. It is assumed that endpoints 12 are inacoustic range of each other, e.g., in the same room.

At 1002, AMS 16 generates a batch of tokens T₁-T₁₀ to be used forproximity verification.

At 1004, AMS 16 sends to endpoint 12(1) over network 20 one or moremessages carrying tokens T₁-T₁₀.

At 1006, in response to receiving tokens T₁-T₁₀ from AMS 16, endpoint12(1) employs the operations described above in connection with method800 to generate and transmit acoustic spread spectrum signals thatconvey tokens T₁-T₁₀. Specifically, endpoint 12(1):

-   -   a. generates a first acoustic spread spectrum signal including a        respective pilot sequence and a respective spread data sequence        representing token T₁ synchronized to the pilot sequence. In an        example, with reference again to FIG. 6, the pilot sequence may        include pilot eigenvector 605, while the token may be encoded as        one of data eigenvectors 610i;    -   b. repeatedly transmits the first spread spectrum signal        (conveying first token T₁) N times at successive/sequential        transmit times t_(1,1)-t_(1,N), where t_(i,j) represents the        j^(th) transmission of token T_(i) in the respective acoustic        spread spectrum signal;    -   c. records each transmit time t_(i,j); and    -   d. repeats the above-described operations (a)-(c) for each of        remaining tokens T₂-T₁₀. The repeated transmissions of the        spread spectrum signals are shown generally at 1008.

In this way, for each token T_(i), endpoint 12(1): generates arespective acoustic spread spectrum signal including a respective pilotsequence and a respective spread data sequence representing the tokenT_(i); repeatedly transmits for a predetermined number of times therespective acoustic spread spectrum signal; and records the (transmit)time for each transmit iteration. Note that AMS 16 is typicallyprogrammed with information that conveys the approximate repeatintervals between token transmissions by endpoint 12(1) (and all suchendpoints to which the AMS sends the tokens for transmission), and theAMS uses the information to ensure that a given token is transmitted byonly one of these endpoints during a given time interval (thus ensuring“token uniqueness”).

At 1010, endpoint 12(2) receives each of the acoustic spread spectrumsignals transmitted by endpoint 12(1). Endpoint 12(2) processes eachreceived acoustic spread spectrum signal according to method 900 to (i)determine a respective receive time t_(R) of each received acousticspread spectrum signal, and (ii) recover/decode a respective one oftokens T₁-T₁₀ from the received acoustic spread spectrum signal. As apractical matter, endpoint 12(2) will—after successfully decoding thetoken—generally have to “back-calculate” where the peak of thecross-correlation function was to determine when t_(R) occurred. Thatis, the actual decoding of the token generally occurs after t_(R).

At 1012, endpoint 12(2) sends to AMS 16 over network 20 one or moremessages including the first recovered token, e.g., token T₁, and anindication of the corresponding receive time t_(R). Endpoint 12(2) sendseach token it decodes to AMS 16, along with the associated time t_(R).

At 1014, in response to receiving the one or more messages includingtoken T₁ and receive time t_(R) from endpoint 12(2), AMS 16 sends toendpoint 12(1) over network 20 a request for the transmit timest_(1,1)-t_(1,N) corresponding to the transmissions of tokens T₁-T₁₀ fromendpoint 12(1).

At 1016, in response to receiving the request for the transmit timesfrom AMS 16, endpoint 12(1) sends to AMS 16 over network 20 the recordedtransmit times t_(1,1)-t_(1,N).

At 1018, in response to receiving the recorded transmit timest_(1,1)-t_(1,N) from endpoint 12(1), AMS 16 determines whether topair/associate endpoint 12(1) with endpoint 12(2), i.e., performspairing with respect to endpoints 12. To do this, AMS 16 performs thefollowing operations. AMS 16 determines/selects the one of transmittimes t_(1,1)-t_(1,N) that is closest in time to receive time t_(R), andcomputes a time difference Δt between the determined/selected transmittime and receive time t_(R). Then, AMS 16 computes a separation distancebetween endpoint 12(1) and endpoint 12(2) as the product Δt*the velocityof sound in air. The computed time difference Δt and the separationdistance are referred to herein as “ranging information.” Care must betaken to account for maximum differences between endpoint 12(1) andendpoint 12(2) timebases (e.g., a maximum NTP difference), particularlyfor short acoustic transmission times. Since AMS 16 may have a betterknowledge of the time accuracy of endpoints 12, there is a benefit ofthe AMS computing the separation distance.

Once AMS 16 has computed the separation distance, the AMS makes apairing decision with respect to endpoints 12(1) and 102(2) based on (i)the computed separation distance, and (ii) the fact that token T₁ wasreceived from endpoint 12(2) by the AMS, indicating a successfulroundtrip transmission of the token T₁ from the AMS to endpoint 12(1),and then from endpoint 12(2) back to the AMS (i.e., indicating that thetoken received from endpoint 12(2) matches the token initially sent toendpoint 12(1) by the AMS). In one example, AMS 16 decides to pairendpoint 12(1) with endpoint 12(2) only if (i) the token T₁ was receivedfrom endpoint 12(2) (i.e., the token received from endpoint 12(2)matches the token the AMS initially sent to endpoint 12(1)), and (ii)the separation distance is less than a predetermined thresholdseparation distance, e.g., less than 20 feet. If both conditions aremet, AMS 16 considers endpoints 12 as paired endpoints, otherwise, AMS16 does not consider the endpoints as paired.

Assuming AMS 16 successfully pairs endpoints 12 with each other, the AMSmay instruct endpoint 12(1) to grant endpoint 12(2) to communicate withand establish a secure channel between endpoint 12(1) and endpoint 12(2)and over which the two devices may exchange information/content in aconference session, for example. To grant endpoint 12(2) access to asecure channel, AMS 16 may send an identifier of the secure channel toendpoint 12(1) and endpoint 12(2) directly (over network 20) usingexisting techniques for secure channel set up (e.g., TLS/SSL), or AMS 16may send the identifier to endpoint 12(2) via endpoint 12(1). Theidentifier may identify a particular pilot sequence used to encode anddecode the secure channel. Also, AMS 16 may download to endpoint 12(1)user profile information for the user associated with endpoint 12(2),such as a user phone number, an email address, and so on.

An alternative arrangement to that described above shifts theresponsibility of computing time difference Δt and the separationdistance from AMS 16 to endpoint 12(1), while the responsibility ofperforming the pairing decision remains with the AMS. In the alternativearrangement, at 1014, AMS 16 sends to endpoint 12(1) over network 20 arequest to compute the separation distance, instead of the request fortransmit times t_(1,1)-t_(1,N) described above. The request to computethe separation distance includes receive time t_(R). In the alternativearrangement, at 1020, in response to receiving the request to computethe separation distance from AMS 16, endpoint 12(1) computes theseparation distance as described above. At 1016, endpoint 12(1) sendsthe computed separation distance to AMS 16, instead of transmit timest_(1,1)-t_(1,N) described above. Then, at 1018, AMS 16 makes the pairingdecision using the computed separation distance provided by endpoint12(1), as described above.

With reference to FIG. 11, there is an example transaction diagram 1100by which proximity verification/authentication using acoustic spreadspectrum techniques for token exchange and ranging information isachieved in environment 10, according to a second embodiment. The secondembodiment is similar to the first embodiment depicted in FIG. 10,except for differences described below.

At 1002 and 1004, AMS 16 generates tokens T₁-T₁₀ and sends the tokens toendpoint 12(1) as described above.

At 1106, in response to receiving tokens T₁-T₁₀ from AMS 16, endpoint12(1) generates and transmits acoustic spread spectrum signals encodedwith tokens T₁-T₁₀ similarly to the way the endpoint generates andtransmits the acoustic spread spectrum signals in operation 1006, exceptthat the endpoint also encodes an indication of the respective timet_(i,j) at which each acoustic spread spectrum signal is to betransmitted into the spread spectrum signal along with the token T_(i).That is, the spread data sequence encoded into each spread spectrumsignal includes both the token T_(i) and the respective transmit time asindicated by the descriptors <T_(i): t_(i,j)> in FIG. 11. For example,with reference again to FIG. 6, each token may be encoded as one of dataeigenvectors 610i (e.g., 610a), while the time t_(i,j) may replace oneof the other eigenvectors (e.g., 610b).

To do this, endpoint 12(1) determines/estimates the future time at whicheach acoustic spread spectrum signal will be transmitted (i.e., transmittime t_(i,j)), encodes the future time into the acoustic spread spectrumsignal, and then transmits the acoustic spread spectrum signal at thefuture time. The repeated transmissions of the spread spectrum signalsencoded with both tokens and transmit times are shown generally at 1108in FIG. 11. As a practical matter, encoding the future transmit timesrequires encoder 106 to know all of the time delays in transmitter TX102, through acoustic modulator 108 and loudspeaker 11. Such time delaysmay be added to the pilot sequence and data frame boundary timesmentioned above in connection with FIG. 4 to arrive at the transmittimes. It is useful to note several factors, including (i) the timedifference between successive token transmissions is generally muchgreater than an actual acoustic transmission time, (ii) only approximatemillisecond (ms) accuracy is required, and (iii) as a result, the timest_(i,j) may be units of time less than 1 ms (e.g., ½ ms) and be encodedrelative to the nearest second of Coordinated Universal Time (UTC),e.g., as 2¹¹=2048, a simple encoding of t_(i,j) may require 11 bits.

At 1110, endpoint 12(2) receives each of the acoustic spread spectrumsignals transmitted by endpoint 12(1) at 1108. Endpoint 12(2) processeseach received acoustic spread spectrum signal according to method 900 to(i) determine a respective receive time t_(R) of each received acousticspread spectrum signal, (ii) recover a respective one of tokens T₁-T₁₀from the received acoustic spread spectrum signal, and (iii) recover thecorresponding transmit time t_(i,j) also encoded in the receivedacoustic spread spectrum signal along with the tokens.

Armed with both receive time t_(R) and the recovered transmit timest_(i,j) (e.g., transmit times t_(1,1)-t_(1,N)), endpoint 12(2)determines/selects the one of transmit times t_(i,j), that is closest intime to receive time t_(R), and computes a time difference Δt betweenthe determined/selected transmit time and receive time t_(R). Then,endpoint 12(2) computes a separation distance between endpoint 12(1) andendpoint 12(2) as the product Δt*the velocity of sound in air.

At 1112, endpoint 12(2) sends to AMS 16 over network 20 one or moremessages including token T₁ and the computed separation distance.

At 1118, in response to receiving token T₁ and the computed separationdistance from endpoint 12(2), AMS 16 determines whether to pair endpoint12(1) with endpoint 12(2), i.e., performs pairing with respect toendpoints 12, as described above.

With reference to FIG. 12, there is an example transaction diagram 1200by which proximity verification/authentication using acoustic spreadspectrum techniques for token exchange and ranging information isachieved in environment 10, according to a third embodiment. The thirdembodiment is similar to the second embodiment depicted in FIG. 11,except for differences described below.

At 1002 and 1004, AMS 16 generates tokens T₁-T₁₀ and sends the tokens toendpoint 12(1) as described above.

At 1206, in response to receiving tokens T₁-T₁₀ from AMS 16, endpoint12(1) generates and transmits acoustic spread spectrum signals encodedwith tokens T₁-T₁₀ similarly to the way the endpoint generates andtransmits the acoustic spread spectrum signals in operation 1106, exceptthat the endpoint also encodes an indication of how many more timesN_(i,j) the token T_(i) encoded in the current acoustic spread spectrumsignal will be transmitted before progressing to the next token T_(i+1).Thus, each acoustic spread spectrum signal includes a spread datasequence that conveys token T_(i), transmit time t_(i,j), and number ofsubsequent transmissions N_(i,j), as indicated by the tuple<T_(i):t_(i,j):N_(i,j)> in FIG. 12. The repeated transmissions of thespread spectrum signals, each encoded with the respective tuple<T_(i):t_(i,j):N_(i,j)>, are indicated generally at 1208 in FIG. 12.

An advantage of encoding the remaining number of transmissions of thecurrent token is that it enables endpoint 12(2) to make an informeddecision on how long to go to into a sleep mode before it has to wake upto decode the next token. For example, if endpoint 12(2) rangingestimates or other endpoint functionality (e.g., accelerometer) indicatethat endpoint 12(2) is no longer moving relative to endpoint 12(1),endpoint 12(2) may go to sleep based on N_(i,j). This saves decodingcomputes, and thus saves battery life in endpoint 12(2).

At 1210, endpoint 12(2) receives each of the acoustic spread spectrumsignals transmitted by endpoint 12(1) at 1208. Endpoint 12(2) processeseach received acoustic spread spectrum signal according to method 900 to(i) determine a respective receive time t_(R) of each received acousticspread spectrum signal, (ii) recover a respective one of tokens T₁-T₁₀from the received acoustic spread spectrum signal, and (iii) recover thecorresponding transmit time t_(i,j) (and number of remainingtransmissions) also encoded in the received acoustic spread spectrumsignal along with the tokens.

Armed with both receive time t_(R) and the recovered transmit timest_(i,j) (e.g., transmit times t_(1,1)-t_(1,N)), endpoint 12(2)determines/selects the one of transmit times t_(i,j), that is closest intime to receive time t_(R), and computes a time difference Δt betweenthe determined/selected transmit time and receive time t_(R). Then,endpoint 12(2) computes a separation distance between endpoint 12(1) andendpoint 12(2) as the product Δt*the velocity of sound in air.

At 1112, endpoint 12(2) sends to AMS 16 over network 20 one or moremessages including token T₁ and the computed separation distance.

At 1118, in response to receiving token T₁ and the computed separationdistance from endpoint 12(2), AMS 16 determines whether to pair endpoint12(1) with endpoint 12(2), i.e., performs pairing with respect toendpoints 12, as described above.

With reference to FIG. 13, there is a flowchart of an example method1300 of pairing endpoints using acoustic spread spectrum techniques fortoken exchange and ranging information. Method 1300 includes operationsdescribed above in connection with FIG. 10 (the first embodiment).

At 1302, a first endpoint (e.g., endpoint 12(1)) generates an acousticspread spectrum signal including a pilot sequence and a spread datasequence representing a token synchronized to the pilot sequence. In anexample, the spread data sequence representing/encoded with the token isbased on the PONS code construction and the pilot sequence is based onthe PONS code construction and is orthogonal to the data sequence.

At 1304, the first endpoint transmits the acoustic spread spectrumsignal and records a transmit time at which the acoustic spread spectrumsignal is transmitted.

At 1306, an indication of a receive time (t_(R)) at which a secondendpoint (e.g., endpoint 12(2)) received the acoustic spread spectrumsignal transmitted by the first endpoint is received and a second token,as recovered from the received acoustic spread spectrum signal by thesecond endpoint, is also received. For example, AMS 16 receives thereceive time and the second token recovered and transmitted by thesecond endpoint.

At 1308, a separation distance between the first endpoint and the secondendpoint is computed based on a time difference between the transmittime and the receive time. For example, AMS 16 computes the separationdistance. In an alternative arrangement, after having received thereceive time from the second endpoint, AMS 16 transmits the receive timeto the first endpoint, which computes the separation distance and thensends the computed separation distance to the AMS.

At 1310, the first endpoint device is paired with the second endpointdevice when the token matches the second token and the computedseparation distance is less than a threshold distance, e.g., less than20 feet. For example, AMS 16 performs the pairing.

With reference to FIG. 14, there is a flowchart of an example method1400 of pairing endpoints using acoustic spread spectrum techniques fortoken exchange and ranging information. Method 1400 includes operationsdescribed above in connection with FIGS. 11 and 12 (the second and thirdembodiments).

At 1402, a first endpoint (e.g., endpoint 12(1)) generates an acousticspread spectrum signal including a pilot sequence and a spread datasequence. The first endpoint encodes both a token and a future transmittime at which the acoustic spread spectrum signal will be transmittedinto the acoustic spread spectrum signal. The first endpoint transmitsthe acoustic spread spectrum signal at the future transmit time.

At 1404, a second endpoint (e.g., endpoint 12(2)) receives the acousticspread spectrum signal transmitted by the first endpoint, determinesfrom the received acoustic spread spectrum signal a receive time, asecond token corresponding to the token, and the future transmit time,computes a separation distance between the first and second endpointsbased on a difference between the receive time and the future transmittime, and sends to a network the second token and the computedseparation distance.

At 1406, AMS 16 receives from the second endpoint over the network thesecond token and the computed separation distance.

At 1408, AMS 16 pairs the first endpoint with the second endpoint devicewhen the second token matches the token and the computed separationdistance is less than a threshold distance.

With reference to FIG. 15, there is a block diagram of an examplecommunication device 1500 in which TX 102, RX 104, or both may beimplemented. Example communication device 1500 may represent either ofendpoints 12(1) or 12(2). There are numerous possible configurations fordevice 1500 and FIG. 15 is meant to be an example. Examples of device1500 include a tablet computer, a personal computer, a laptop computer,a mobile phone, such as a smartphone, or a video conference endpoint orbase station, and so on. Device 1500 may include a display 1502,loudspeaker 110, microphone 120, one or more network interface units(NIUs) 1508, and memory 1514 each coupled to a processor 1516, andtimebase 412. The one or more NIUs 1508 may include wired and/orwireless connection capability that allows processor 1516 to communicateover a communication network. For example, NIUs 1508 may include anEthernet card to communicate over an Ethernet connection, a wireless RFtransceiver to communicate wirelessly with cellular networks in thecommunication network, optical transceivers, and the like, as would beappreciated by one or ordinary skill in the relevant arts. Timebase 412may include one or more oscillators and/or clocks, and may also includea Global Positioning Systems (GPS) receiver to recover location andtime, which may be used to time-synchronize multiple ones of devices1500. Also, timebase 412 may include applications to implement timesynchronization via NTP, and so on.

Processor 1516 may include a collection of microcontrollers and/ormicroprocessors, for example, each configured to execute respectivesoftware instructions stored in the memory 1514. The collection ofmicrocontrollers may include, for example: a video controller toreceive, send, and process video signals or images related to display1502; an audio processor to receive, send/transmit, and processaudio/sound signals related to loudspeaker 110 and microphone 120 asdescribed herein; and a high-level controller to provide overallcontrol. Portions of memory 1514 (and the instructions therein) may beintegrated with processor 1516. As used herein, the terms “audio” and“sound” are synonymous and interchangeable.

The memory 1514 may include read only memory (ROM), random access memory(RAM), magnetic disk storage media devices, optical storage mediadevices, flash memory devices, electrical, optical, or otherphysical/tangible (e.g., non-transitory) memory storage devices. Thus,in general, the memory 1514 may comprise one or more computer readablestorage media (e.g., a memory device) encoded with software comprisingcomputer executable instructions and when the software is executed (bythe processor 1516) it is operable to perform the operations describedherein. For example, the memory 1514 stores or is encoded withinstructions for control logic 1520 to perform operations describedherein related to TX 102 and RX 104, including endpoint operationsassociated with methods 800, 900, 1300, 1400, and transaction diagrams1000-1200.

In addition, memory 1514 stores data/information 1522 used and generatedby logic 1520.

With reference to FIG. 16, a simplified block diagram of accessmanagement server 16 is shown, according to an embodiment. Server 16includes a processor 1610 to process instructions relevant to proximityverification in environment 10, memory 1620 to store a variety of dataand software instructions, including access management server controllogic/software 1625. Server 106 also includes a network interface unit1625 similar to network interface unit 1508 described above that enablesnetwork communications so that the server can communicate with otherdevices, e.g., endpoints 12. Memory 1620 may comprise read only memory(ROM), random access memory (RAM), magnetic disk storage media devices,optical storage media devices, flash memory devices, electrical,optical, or other physical/tangible (e.g., non-transitory) memorystorage devices. Processor 1610 is, for example, a microprocessor ormicrocontroller that executes instructions for implementing theprocesses described herein. Thus, in general, memory 1620 may compriseone or more tangible (non-transitory) computer readable storage media(e.g., a memory device) encoded with software (e.g., the meeting servercontrol logic/software 1625) comprising computer executable instructionsand when the software is executed (by the processor 1610) it is operableto perform the AMS operations described herein, including operationsassociated with methods 1300 and 1400, and transaction diagrams1000-1200.

Memory 1620 also stores data 1650 generated and used by logic 1625.

In summary, embodiments presented herein are directed to proximitypairing of endpoints using acoustic spread spectrum token exchange andranging information. The embodiments add an acoustic ranging feature asan additional metric upon which a pairing/association decision can bebased. By recording the time instant of the sending of an ultrasoundtoken from an ultrasound speaker and recording the time instance(s) ofthe reception of the same ultrasound token at a microphone of a capturedevice (via detection of a cross-correlation peak) the “flight time” ofthe token can be determined. This is the flight time of the dominantpath from the ultrasound speaker to the microphone at the capture device(which may include reflections). This flight time is linearly related tothe distance of the dominant path between the speaker and themicrophone. Thus the apparent distance can be determined. In an example,an endpoint using NTP can resolve times to sub-millisecond accuracy. Anendpoint using other means may attain even more time accuracy. Bycomparing the time at which the cross-correlation peak occurs at thereceiver with the time of the beginning of the pilot sequence that wassent at the sender, and knowing the speed of sound, the acoustic time offlight and separation of the dominant path can be determined. Assumingsub-millisecond accuracy, e.g., the sending and receiving endpoints havea sub-millisecond synchronization to NTP, the dominant path separationsmay be determined to within approximately 11 inches, which is sufficientfor making a pairing decision.

In summary, in one form, a method is provided comprising: at a firstendpoint device, generating an acoustic spread spectrum signal includinga pilot sequence and a spread data sequence representing a tokensynchronized to the pilot sequence; at the first endpoint device,transmitting the acoustic spread spectrum signal and recording atransmit time at which the acoustic spread spectrum signal istransmitted; receiving from a second endpoint device an indication of areceive time at which the second endpoint device received the acousticspread spectrum signal transmitted by the first endpoint device and asecond token as recovered from the received acoustic spread spectrumsignal by the second endpoint device; computing a separation distancebetween the first endpoint device and the second endpoint device basedon a time difference between the transmit time and the receive time; andpairing the first endpoint device with the second endpoint device whenthe token matches the second token and the computed distance is lessthan a threshold distance.

In another form, a system is provided comprising: a first endpointincluding: an encoder and a modulator to generate an acoustic spreadspectrum signal including a pilot sequence and a spread data sequencerepresenting a token synchronized to the pilot sequence; and aloudspeaker to transmit the acoustic spread spectrum signal, wherein thefirst endpoint device is configured to record a transmit time at whichthe acoustic spread spectrum signal is transmitted; and a managemententity including: a network interface to communicate with a network; anda processor coupled with the network interface and configured to:receive from a second endpoint device an indication of a receive time atwhich the second endpoint device received the acoustic spread spectrumsignal transmitted by the first endpoint device and a second token asrecovered from the received acoustic spread spectrum signal by thesecond endpoint device; compute a separation distance between the firstendpoint device and the second endpoint device based on a differencebetween the transmit time and the receive time; and pair the firstendpoint device with the second endpoint device when the token matchesthe second token and the computed separation distance is within athreshold distance.

In yet another form, a method is provided comprising: at a firstendpoint device: generating an acoustic spread spectrum signal includinga pilot sequence and a spread data sequence synchronized with the pilotsequence, wherein the spread data sequence encodes a token and a futuretransmit time at which the acoustic spread spectrum signal will betransmitted; and transmitting the acoustic spread spectrum signal at thefuture transmit time; at a second endpoint device: receiving theacoustic spread spectrum signal; determining from the received acousticspread spectrum signal a receive time, a second token corresponding tothe token, and the future transmit time; computing a separation distancebetween the first endpoint device and the second endpoint device basedon a difference between the receive time and the future transmit time;and sending to the network the second token and the computed separationdistance; receiving from the second endpoint device over the network thesecond token and the computed separation distance; and pairing the firstendpoint device with the second endpoint device when the second tokenmatches the token and the computed separation distance is less than athreshold distance.

The methods described herein can also be embodied by softwareinstructions stored in a non-transitory computer readable storagemedium, that when executed by at least one processor, cause theprocessor to perform the operations of the respective methods describedherein.

Further still, in another form, an device is provided that includes aprocessor, a transmitter and a receiver. The processor generates anacoustic spread spectrum signal including a pilot sequence and a spreaddata sequence representing a token synchronized to the pilot sequence.The transmitter transmits the acoustic spread spectrum signal andrecords a transmit time at which the acoustic spread spectrum signal istransmitted. The receiver receives from a another device an indicationof a receive time at which the other device received the acoustic spreadspectrum signal transmitted by the device and a second token asrecovered from the received acoustic spread spectrum signal by the otherdevice. The processor computes a separation distance between the deviceand the other device based on a time difference between the transmittime and the receive time. The device may be paired with the otherdevice when the token matches the second token and the computed distanceis less than a threshold distance.

The above description is intended by way of example only. Variousmodifications and structural changes may be made therein withoutdeparting from the scope of the concepts described herein and within thescope and range of equivalents of the claims.

What is claimed is:
 1. A method comprising: at a first endpoint device,generating an acoustic spread spectrum signal including a pilot sequenceand a spread data sequence representing a token synchronized to thepilot sequence; at the a first endpoint device, transmitting the anacoustic spread spectrum signal and recording a transmit time at whichthe acoustic spread spectrum signal is transmitted, wherein the acousticspread spectrum signal is encoded with a token; receiving over a networkfrom a second endpoint device an indication of a receive time at whichthe second endpoint device received the acoustic spread spectrum signaltransmitted by the first endpoint device and a second token as recoveredfrom the received acoustic spread spectrum signal by the second endpointdevice; computing a separation distance between the first endpointdevice and the second endpoint device ranging information based on atime difference between the transmit time and the receive time; andresponsive to the token matching the second token, and a comparison ofthe ranging information to a threshold value, pairing the first endpointdevice with the second endpoint devicewhen the token matches the secondtoken and the computed distance is less than a threshold distance. 2.The method of claim 1, wherein the pairing includes permitting thesecond endpoint device access to an information carrying channel betweenthe first endpoint device and the second endpoint device.
 3. The methodof claim 1 24, further comprising, at the second endpoint device:receiving the acoustic spread spectrum signal transmitted by the firstendpoint device; correlating the received acoustic spread spectrumsignal with a replica of the pilot sequence to produce a correlationpeak indicative of a presence of the pilot sequence; decoding the datasequence based on timing of the correlation peak to recover the secondtoken from the data sequence; and determining the receive time based onthe timing of the correlation peak.
 4. The method of claim 1, furthercomprising: repeatedly transmitting the acoustic spread spectrum signaland recording a respective transmit time at which each repeated acousticspread spectrum signal is transmitted; determining which of the recordedtransmit times is nearest in time to the receive time; wherein thecomputing includes computing the separation distance ranging informationbased on the receive time and the transmit time determined to be nearestin time to the receive time.
 5. The method of claim 1 24, wherein thedata sequence representing the token is based on a PrometheusOrthonormal Set (PONS) code construction and the pilot sequence is basedon the PONS code construction and is orthogonal to the data sequence. 6.The method of claim 5, wherein each of the data sequence and the pilotsequence includes a respective sequence of PONS coefficients that sumtogether to a value of zero.
 7. The method of claim 5, wherein the datasequence includes a sequence of PONS coefficients having a length equalto a first odd power of 2 and the pilot sequence includes a sequence ofPONS coefficients having a second length equal to a second odd power of2.
 8. The method of claim 1, further comprising: initially sending amessage carrying the token from a management entity, configured tocommunicate with the first endpoint device and the second endpointdevice over a network, to the first endpoint device to cause the firstendpoint device to perform the generating, the transmitting, and therecording.
 9. The method of claim 8, further comprising, at themanagement entity: sending to the first endpoint device a request forthe transmit time; receiving from the first endpoint device a messageindicating the transmit time, wherein the computing the separationdistance ranging information and the pairing are each performed at themanagement entity.
 10. The method of claim 8, wherein the receivingincludes receiving at the management entity the indication of thereceive time and the second token, and the method further comprises:sending from the management entity to the first endpoint device theindication of the receive time; performing the computing the separationdistance ranging information at the first endpoint device; and sendingthe computed separation distance ranging information from the firstendpoint device to the management entity, wherein the pairing isperformed at the management entity.
 11. A system comprising: a firstendpoint device including: an encoder and a modulator to generate anacoustic spread spectrum signal including a pilot sequence and a spreaddata sequence representing a token synchronized to the pilot sequence;and a loudspeaker to transmit the a acoustic spread spectrum signal,wherein the first endpoint device is configured to record a transmittime at which the acoustic spread spectrum signal is transmitted, andthe acoustic spread spectrum signal is encoded with a token; and amanagement entity including: a network interface to communicate with anetwork; and a processor coupled with the network interface andconfigured to: receive from a second endpoint device an indication of areceive time at which the second endpoint device received the acousticspread spectrum signal transmitted by the first endpoint device and asecond token as recovered from the received acoustic spread spectrumsignal by the second endpoint device; compute a separation distancebetween the first endpoint device and the second endpoint device ranginginformation based on a difference between the transmit time and thereceive time; and responsive to the token matching the second token, anda comparison of the ranging information to a threshold value, pair thefirst endpoint device with the second endpoint devicewhen the tokenmatches the second token and the computed separation distance is withina threshold distance.
 12. The system of claim 11, wherein the processoris configured to pair by permitting the second endpoint device access toan information carrying channel between the first endpoint device andthe second endpoint device.
 13. The system of claim 11 25, wherein thesecond endpoint device is configured to: receive the acoustic spreadspectrum signal transmitted by the first endpoint device; correlate thereceived acoustic spread spectrum signal with a replica of the pilotsequence to produce a correlation peak indicative of a presence of thepilot sequence; decode the data sequence based on timing of thecorrelation peak to recover the second token from the data sequence; anddetermine the receive time based on the timing of the correlation peak.14. The system of claim 11 25, wherein the data sequence representingthe token is based on a Prometheus Orthonormal Set (PONS) codeconstruction and the pilot sequence is based on the PONS codeconstruction and is orthogonal to the data sequence.
 15. The methodsystem of claim 11, wherein the processor is further configureconfigured to: initially send a message carrying the token to the firstendpoint device over the network to cause the first endpoint device toperform the operations to generate, transmit, and record.
 16. A methodcomprising: at a first endpoint device: generating an acoustic spreadspectrum signal including a pilot sequence and a spread data sequencesynchronized with the pilot sequence, wherein the spread data sequenceencodes a token and a future transmit time at which the acoustic spreadspectrum signal will be transmitted; and transmitting the an acousticspread spectrum signal at the a future transmit time, wherein theacoustic spread spectrum signal is encoded with a token and a futuretime at which the acoustic spread spectrum signal will be transmitted;at a second endpoint device: receiving the acoustic spread spectrumsignal; determining from the received acoustic spread spectrum signal areceive time, a second token corresponding to the token, and the futuretransmit time; computing a separation distance between the firstendpoint device and the second endpoint device ranging information basedon a difference between the receive time and the future transmit time;and sending to the a network the second token and the computedseparation distance ranging information; receiving from the secondendpoint device over the network the second token and the computedseparation distance ranging information; and responsive to the tokenmatching the second token, and a comparison of the ranging informationto a threshold value, pairing the first endpoint device with the secondendpoint device when the second token matches the token and the computedseparation distance is less than a threshold distance.
 17. The method ofclaim 16 26, wherein the spread data sequence encoding the token isbased on a Prometheus Orthonormal Set (PONS) code construction and thepilot sequence is based on the PONS code construction and is orthogonalto the data sequence.
 18. The method of claim 16, further comprising:wherein the generating includes encoding acoustic spread spectrumsignals encoded with the token and respective incrementally increasingfuture times into respective acoustic spread spectrum signals into whichthe token is encoded, and transmitting the respective acoustic spreadspectrum signals at the respective incrementally increasing futuretimes.
 19. The method of claim 18, wherein the generating includesgenerating a sequence of acoustic spread spectrum signals each includinga respective token of a sequence of tokens.
 20. The method of claim 16,wherein the generating further includes encoding acoustic spreadspectrum signal is encoded with an indication of a number of remainingtimes will be transmitted before transitioning to a next token.
 21. Themethod of claim 1, wherein the ranging information is a separationdistance between the first endpoint device and the second endpointdevice, the threshold value is a threshold distance, and the separationdistance is less than the threshold distance.
 22. The system of claim11, wherein the ranging information is a separation distance between thefirst endpoint device and the second endpoint device, the thresholdvalue is a threshold distance, and the separation distance is less thanthe threshold distance.
 23. The method of claim 16, wherein the ranginginformation is a separation distance between the first endpoint deviceand the second endpoint device, the threshold value is a thresholddistance, and the separation distance is less than the thresholddistance.
 24. The method of claim 1, wherein the acoustic spreadspectrum signal includes a pilot sequence and a spread data sequencerepresenting the token synchronized to the pilot sequence.
 25. Thesystem of claim 11, wherein the acoustic spread spectrum signal includesa pilot sequence and a spread data sequence representing the tokensynchronized to the pilot sequence.
 26. The method of claim 16, whereinthe acoustic spread spectrum signal includes a pilot sequence and aspread data sequence synchronized with the pilot sequence, and thespread data sequence encodes the token and the future transmit time.